package cm.tl.pms.util;

import cn.hutool.core.lang.UUID;

import java.util.Random;
import java.util.concurrent.ThreadLocalRandom;

/**
 * @author w7h1te_ywq
 * @version 1.0.0
 * @date 2024-06-14 16:41
 */
public class RandomNum {
    private static Random random = new Random();

    public static int generateRandomNumber() {
        long timestamp = System.currentTimeMillis();
//        Random random = new Random(timestamp);//上移   在同一时间戳下，如果多次调用 generateRandomNumber 方法会导致 Random 对象被重复初始化，从而可能产生相同的随机数
        int randomNumber = random.nextInt(90000) + 10000; // 生成一个5位数的随机数
        return randomNumber;
    }

    /**
     * ThreadLocalRandom 是 Java 提供的线程安全的随机数生成器，可以确保不同线程之间的随机数独立，避免重复。
     *
     * @return
     */
    public static int generateSafeRandomNumber() {
        int randomNumber = ThreadLocalRandom.current().nextInt(10000, 100000); // 使用 ThreadLocalRandom 生成一个5位数的随机数
        return randomNumber;
    }


    public static void main(String[] args) {
//        int randomNumber = RandomNum.generateRandomNumber();
        String replace = UUID.randomUUID().toString().replace("-", "");
//        System.out.println("Random Number: " + randomNumber);
        System.out.println("Random Number: " + replace);
    }
}
